The present invention relates to the field of software applications generally, and specifically to applications for analyzing and publishing data. Enterprises store large amounts of data using databases. Users often create and distribute reports including data from the database to other people within or outside the enterprise. Typically, these reports need to present and summarize the data in a clear and compelling manner. Therefore, users create reports using rich content, including text formatting, tables, and charts. One way of creating rich content reports is to extract the necessary data from the database, create a report in a word-processing, spreadsheet, or other applications, and manually insert the data into the appropriate portions of the report. This approach is time-consuming and error-prone. Additionally, when reports need to be revised with new or updated data, the user must extract the new data from the database and edit the report manually.
One prior approach automates report generation by using a document layout designing language, such as XSL, to create a document template. The document template can then be combined with report data from the database to create a report. If the report data from the database or other application includes metadata such as XML, then reports can be generated automatically anytime data is changed or updated.
One problem with document layout designing languages such as XSL is they are difficult for non-programmers to use. Managers, analysts, and other users within an enterprise do not have the ability to create or edit templates written these languages. As a result, if a user needs to create a template, he or she creates an example or specification of the report that indicates the formatting and the location of report data in the report and sends it to a programmer who then creates the actual template in a document layout designing language. This increases the amount of time and expense needed to create templates used to automate report generation.
It is therefore desirable for a system and method to enable users to create templates used to automatically generate reports without resorting to document layout designing languages. It is further desirable that the system allow users to create templates using common software applications, rather than unfamiliar and specialized software applications.